package org.yoyo.classroom.service;



import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.yoyo.classroom.domain.po.BookingOrder;
import org.yoyo.classroom.domain.vo.AvailableBookingTimeVO;

import java.util.List;

/**
 * 预约订单业务逻辑层接口
 */
public interface BookingOrderService {

    /**
     * 根据ID查询预约订单
     * @param id 预约订单ID
     * @return 预约订单对象
     */
    BookingOrder getBookingOrderById(Long id);

    /**
     * 查询所有预约订单
     * @return 预约订单列表
     */
    List<BookingOrder> getAllBookingOrders();

    /**
     * 插入预约订单
     * @param bookingOrder 预约订单对象
     * @return 影响的行数
     */
    int addBookingOrder(BookingOrder bookingOrder);

    /**
     * 更新预约订单
     * @param bookingOrder 预约订单对象
     * @return 影响的行数
     */
    int updateBookingOrder(BookingOrder bookingOrder);

    /**
     * 删除预约订单（逻辑删除）
     * @param id 预约订单ID
     * @return 影响的行数
     */
    int deleteBookingOrder(Long id);

    List<BookingOrder> getBookingOrders();

    List<BookingOrder> findOrderByUserId(Long userId);

    List<AvailableBookingTimeVO> getAvailableBookingTimes(Long roomId,Long seatId);
    PageInfo<BookingOrder> findOrderByUserIdWithPage(Long userId, Integer pageNum, Integer pageSize, String bookingDate, Integer status);

}
